#ifndef __Collections_IArraySortHelper_H__
#define __Collections_IArraySortHelper_H__

///<summary>
/// IArraySortHelper<T>
///</summary>
#define Collections_IArraySortHelper(TKey) bindT(Collections_IArraySortHelper,TKey)
#define Declare_Collections_IArraySortHelper(TKey, TiKey) \
	private enum { \
		_Collections_IArraySortHelper_##TKey##VIndex_BinarySearch, \
		_Collections_IArraySortHelper_##TKey##VIndex_Sort, \
		_Collections_IArraySortHelper_##TKey##VIndexNext, \
	}; \
	public interfaceT(Collections_IArraySortHelper,TKey,, \
		virtualT(Collections_IArraySortHelper,TKey,int_,BinarySearch, TiKey keys[], int_ index, int_ length, TiKey value, Collections_IComparer(TKey) *comparer); \
		virtualT(Collections_IArraySortHelper,TKey,void,Sort, TiKey keys[], int_ index, int_ length, Collections_IComparer(TKey) *comparer); \
	);
#define Implement_Collections_IArraySortHelper(TKey, TiKey) \
	Implement_TypeTI(Collections_IArraySortHelper,TKey,)

#endif /* __Collections_IArraySortHelper_H__ */